package com.xianzhiOA.service.impl;

import com.github.pagehelper.PageHelper;
import com.xianzhiOA.bean.XzEmp;
import com.xianzhiOA.dao.XzEmpMapper;
import com.xianzhiOA.service.XzEmpService;
import com.xianzhiOA.util.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by Administrator on 2017/4/10.
 */
@Service("xzEmpService")
public class XzEmpServiceImpl implements XzEmpService{

    @Autowired
    private XzEmpMapper  EmpMapper;


    ////  验证部分开始  ///////////////////////////////////////////////////////

    //添加、修改手机号时的验证
    @Override
    public  boolean checkTelNO(String mobiles) {

        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");

        Matcher m = p.matcher(mobiles);

        System.out.println(m.matches() + "---");

        return m.matches();

    }


    //根据员工工号查询数据（用于添加、修改数据时判断填入的员工工号是否重复）
    @Override
    public XzEmp selByEmpNo(int empNo) {
        return EmpMapper.selByEmpNo(empNo);
    }

    //根据员工账号查询数据（用于添加、修改数据时判断填入的员工账号是否重复）
    @Override
    public XzEmp selByAccount(String empAccount) {
        return  EmpMapper.selByAccount(empAccount);
    }
    ////  验证部分结束   ////////////////////////////////////////////////////////////


    //添加员工
    @Override
    public int insert(XzEmp xzEmp) {
         return  EmpMapper.insert(xzEmp);
    }
    @Override
    public List<XzEmp> selAll(XzEmp emp){
        Map map = MakeQ(emp);
        return  EmpMapper.selAll(map);
    }
    //真删除员工
    @Override
    public int deleteByPrimaryKey(Long empId) {
        return  EmpMapper.deleteByPrimaryKey(empId);
    }

   //伪删除（数据库中未删除，只是标记删除）
    @Override
    public int phoneyDeleteByPrimaryKey(XzEmp xzEmp) {
        return  EmpMapper.phoneyDeleteByPrimaryKey(xzEmp);
    }

    //按ID查找员工
    @Override
    public XzEmp findById(Long empId) {
       return  EmpMapper.selectByPrimaryKey(empId);
    }

    //修改员工
    @Override
    public int updateByPrimaryKey(XzEmp xzEmp) {
        return   EmpMapper.updateByPrimaryKey(xzEmp);
    }


    //查询员工（分页）
    @Override
    public PageBean<XzEmp> selAll(XzEmp xzEmp, Date beginDate, Date endDate, int page, int rows) {
        PageHelper.startPage(page,rows);
        Map<String,Object> map=MakeQ(xzEmp);
        if(beginDate != null)map.put("beginDate",beginDate);
        if(endDate != null)map.put("endDate",endDate);
        List<XzEmp>  xzEmpList=EmpMapper.selAll(map);
        PageBean<XzEmp> pb=new PageBean<>(xzEmpList);
        return  pb;
    }

    private  Map<String,Object> MakeQ(XzEmp  xzEmp){
         Map<String,Object> hashMap=new  HashMap<>();
        hashMap.put("empId",xzEmp.getEmpId());
        hashMap.put("empName",xzEmp.getEmpName());
        hashMap.put("empRole",xzEmp.getEmpRole());
        hashMap.put("empTel",xzEmp.getEmpTel());
        hashMap.put("empAccount",xzEmp.getEmpAccount());
        hashMap.put("empPwd",xzEmp.getEmpPwd());
        return  hashMap;
    }
    //根据员工姓名查询
    @Override
    public List<XzEmp> selByname(String empName) {
        return EmpMapper.selByname(empName);
    }
}
